package org.core {
	import flash.utils.getDefinitionByName;
	import flash.utils.getQualifiedClassName;

	/**
	 * CoreObject 重定义Object
	 * @author Kinglong(kinglong@gmail.com)
	 * @since:2010-9-22
	 */
	public class CoreObject extends Object implements IObject {
		public function CoreObject(){
			super();
		}

		public function equals(object:*):Boolean {
			return this == object;
		}

		public function toString():String {
			return "[ToString:" + getClassName() + "]";
		}

		/**返回对象的完全限定类名*/
		public final function getClassName():String {  
			return getQualifiedClassName(this).replace("::", ".");
		}
		/**返回参数指定的类的类对象*/
		public final function getClass():Class {
			return getDefinitionByName(getClassName()) as Class;
		}

		public function clone():* {
			throw new Error("CloneNotSupported " + getClassName());
		}
	}
}